				QIRC 1.0
	
			A IRC client for Quake 3 Arena

COPYRIGHT:
	
	QIRC was written by [UTG]LOKi (Martin Otten)
	May 2000, Dortmund, Germany

	Email :	loki@clan-utgard.de
	WWW   : http://argus.splatterworld.de
	IRC   : #quake.utg	

CREDITS:
	
	[UTG]Shaker (Jan Stuhler) for extreme beta-testing.
	RAL (Ralph Stoesser) for the initial idea and suggestions.


USAGE:

	Just start the QIRC.EXE. Enter a valid IRC server (IP or name)
	and the port number (usually 6667). Choose an unused nick name
	and your favorite channel (for example #quake.ger).

	Press "Connect" and wait a little bit. Soon there should appear
	the messages in the channel text box. You typ new messages in the
	"Chat" text box and send them by pressing the "Send" button.

	Now start Quake3.exe. You don't need any MODs or special configs.
	Just start a game (single or multiplayer) and watch how the new
	IRC messages appears on the screen.

	if you want to chat without leaving Quake, just typ in the console:

	]\irc This is my chat text.

	if quake says "unknown command", thats correkt. however the message 
	is send to the IRC sever via QIRC. To get rid of this error message
	just add the following line into you q3config.cfg (or any other 
	config you use) :

	seta irc "qirc"

	You can connect or disconnect anytime, anywhere. QIRC always find
	you quake 3 client. Close QIRC with the "Exit" button, so QIRC can
	load all settings next time.

UNINSTALL:
	
	Just delete all files and the registry key HKEY_LOCAL_MACHINE\SOFTWARE\QIRC.



HOW DOES IT WORK ? (WARNING - only for crazy Win32 programmers)
	
	For all quake developers, this is a little description of QIRC's
	tricky "Quake 3 Remote Control Technology (TM)". When playing Quake
	in fullscreen there exists a nonvisible console window under Win32.
	To see this window switch to window-mode (r_fullscreen 0) and
	make it visible (viewlog 1, it's cheat-protected, so use devmap).
	You can send commands to the quake client by typing them in this
	console	window. 

	To get the handle of this nonvisible console window use:

		HWND hwnd = FindWindow("Q3 WinConsole","Quake 3 Console");
	
	With this handle go through all cild windows with:

		EnumChildWindows( hwnd,EnumChildProc,NULL);		

	QIRC sends the keys in the function EnumChildProc with :
	
		for (int i = 0; i<length;i++)
			SendMessage(hwnd,WM_CHAR ,command[i],1);
		// and the CR 
		SendMessage(hwnd,WM_CHAR ,13,1);

	To read the feedback messages i used
		
		SendMessage(hwnd,WM_GETTEXT ,(WPARAM)sizeof(console),(LPARAM) console);

	to read the actual console content. To claer the console use:

		SendMessage(hwnd,WM_SETTEXT ,(WPARAM)NULL,(LPARAM)"");
	
	With this technique you have total control over a local q3 client 
	or server. If you have questions, please feel free to email me.
	If you use it in your own program please let me know and mention my 
	name ;-)






